import { ApiPaginatedResponse, ApiResponse } from '../types';

/**
 * 格式化响应结果
 * @param {any} data - 返回的数据
 * @param {string} message - 操作信息
 * @param {number} code - 状态码
 * @returns {object} - 格式化后的响应对象
 */
export const formatResponse = <T = any>(data?: T | null, message: string = '操作成功', code: number = 200): ApiResponse<T> => {
  return {
    code,
    message,
    data,
  };
};

/**
 * 格式化分页响应结果
 * @param {T[]} data - 返回的数据列表
 * @param {number} total - 数据总数
 * @param {number} size - 每页数量
 * @param {string} message - 操作信息
 * @param {number} code - 状态码
 * @returns {object} - 格式化后的响应对象
 */
export const formatPaginatedResponse = <T = any>(data: T[], total: number, size: number, message: string = '操作成功', code: number = 200): ApiPaginatedResponse<T> => {
  return {
    code,
    message,
    data: {
      list: data,
      total,
      pages: Math.ceil(total / size),
    },
  };
};
